<script setup lang="ts">
import { deletetAddressAPI, getAddressListAPI, setDefaultAddressAPI } from '@/api/address';
import { closeToast, showLoadingToast, showToast } from 'vant';
import { onMounted, ref } from 'vue';

const addressInfo = ref<AddressInfo[]>([])
const count = ref(0);
const loading = ref(false);
const onRefresh = () => {
    getAddressList()
    loading.value = false
}
// 获取所有地址信息
const getAddressList = async () => {
    showLoadingToast({ message: '加载中...', duration: 0, forbidClick: true })
    addressInfo.value = await getAddressListAPI()
    closeToast()
    // hdm.showMessage(JSON.stringify(addressInfo.value))
}
const setDefaultAddress = async (id: string, defalut: number) => {
    await setDefaultAddressAPI(id, { isDefault: defalut })
    getAddressList()
    // hdm.showMessage(id)
}
const deleteAddress = async (id: string) => {
    await deletetAddressAPI(id)
    getAddressList()
    // hdm.showMessage(id)
}
onMounted(() => {
    getAddressList()
})
</script>

<template>
    <van-pull-refresh v-model="loading" @refresh="onRefresh">
        <div class="address-manager-page">
            <van-swipe-cell v-for="item in addressInfo.sort((a, b) => a.isDefault - b.isDefault)" :key="item.id">
                <div class="item">
                    <div class="item-wrapper">
                        <div class="item-area" v-if="!item.isDefault">
                            <span class="item-tag">默认</span>
                        </div>
                        <div class="item-address"> {{ item.address }}</div>
                        <div class="item-connect">{{ item.receiver }} {{ item.contact }}</div>
                    </div>
                    <div class="item-edit">
                        <van-icon name="edit" size="20" color="var(--mk-gray)"></van-icon>
                    </div>
                </div>
                <template #right>
                    <van-button @click="setDefaultAddress(item.id, 0)" square type="primary" style="height: 100%">
                        设为<br />默认
                    </van-button>
                    <van-button @click="deleteAddress(item.id)" square type="danger" style="height: 100%" text="删除" />
                </template>
            </van-swipe-cell>



            <div class="submit">
                <van-button round block type="primary" to="/address/edit"> 新建地址 </van-button>
            </div>
        </div>
    </van-pull-refresh>

</template>

<style lang="css" scoped>
.address-manager-page {
    padding: 8px;
    width: 100%;
    min-height: 100vh;
    position: relative;
    padding-bottom: 80px;
}

.submit {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    padding: 16px;
    height: 80px;
}

.item {
    min-height: 108px;
    width: 100%;
    background-color: var(--mk-white);
    border-radius: 2px;
    display: flex;
    margin-bottom: 8px;
}

.item-wrapper {
    padding: 16px;
    flex: 1;
}

.item-area {
    font-size: 14px;
    color: var(--mk-text);
    margin-bottom: 5px;
}

.item-tag {
    display: inline-block;
    border-radius: 4px;
    width: 40px;
    height: 20px;
    line-height: 20px;
    font-size: 12px;
    color: var(--mk-white);
    text-align: center;
    background-image: linear-gradient(90deg, var(--mk-linear_begin), var(--mk-linear_end));
    margin-right: 4px;
}

.item-address {
    font-size: 16px;
    color: var(--mk-black);
    font-weight: 500;
    margin-bottom: 5px;
}

.item-connect {
    font-size: 12px;
    color: var(--mk-text);
}

.item-edit {
    width: 48px;
    display: flex;
    align-items: center;
}

.btn-group {
    height: 100%;
    width: 100px;
    display: flex;
}
</style>